| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 
 | import os import subprocess
 from flask import Flask ,render_template ,request
 
 jar_path = [已隐藏,内容不重要]
 '''老板要我出一个攻击者绝对不会发现的CTF题目
 我使用java开发真正需要处理的核心逻辑,并且隐藏在后端,这样绝对安全了
 因为攻击者只可能去傻傻的寻找python漏洞,其实不知道应该去寻找Java的经典漏洞
 而且我有日志记录攻击者轨迹随时可以发现
 他们做梦也想不到我把flag藏在了FLAG环境变量里:-)
 '''
 
 app =Flask (__name__ )
 
 @app .route ("/",methods =['GET','POST'])
 def aaa():
 if request .method =='POST':
 OOO0000O0000O00O0 =request .form ['text'].split (' ')
 O00O0OO0OO00000OO =''
 if len (OOO0000O0000O00O0 )<1 :
 return ('oh, invalid message',400 )
 elif len (OOO0000O0000O00O0 )<2 :
 O00O0OO0OO00000OO =OOO0000O0000O00O0 [0 ]
 OOO0000O0000O00O0 =''
 else :
 O00O0OO0OO00000OO ,OOO0000O0000O00O0 =OOO0000O0000O00O0 [0 ],' '.join (OOO0000O0000O00O0 [1 :])
 OOO0OOO0000OO0000 =bbb (O00O0OO0OO00000OO ,OOO0000O0000O00O0 )
 return OOO0OOO0000OO0000
 return render_template ('home.html')
 
 def bbb (O0OOOO0O0000OOOOO ,O000O0O0O00O00OO0 ):
 with open("/flag","r") as f:
 FLAG = f.read()
 O00000O0OOO0OO00O =subprocess .run (['java','-jar','-Dcmd='+O0OOOO0O0000OOOOO ,jar_path,'--',O000O0O0O00O00OO0 ],
 capture_output =True ,timeout =12,env={"FLAG":FLAG})
 return O00000O0OOO0OO00O .stdout .decode ('utf-8')
 
 if __name__ =='__main__':
 port =os .environ ['PORT']if 'port'in os .environ else 1337
 app .run (host ='0.0.0.0',port =port )
 
 
 |